package 题目集.滑动窗口;

import java.util.Scanner;

/**
 * 给定一个长度为 n
 *  的整数序列 a1,a2,…,an
 *  以及一个长度为 m
 *  的整数序列 b1,b2,…,bm
 * 请你判断 a序列是否为 b序列的子序列。
 *
 * 子序列指序列的一部分项按原有次序排列而得的序列，例如序列 {a1,a3,a5}是序列 {a1,a2,a3,a4,a5}的一个子序列。
 */
public class 判断子序列 {

    static int[] a,b;
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        a=new int[sc.nextInt()];
        b=new int[sc.nextInt()];
        for (int i = 0; i < a.length; i++) {
            a[i]=sc.nextInt();
        }
        for (int i = 0; i < b.length; i++) {
            b[i]=sc.nextInt();
        }
        if (isSubsequence()) {
            System.out.println("Yes");
        }else {
            System.out.println("No");
        }
    }

    /**
     * 在b中找到a的子序列
     * 即在滑动窗口 b0~b(n-1)中找a1，设找到，其下标为i
     * 则再从滑动窗口 bi~b(n-1)中找a2，设找到，其下标为j。依次循环，直到找完a的所有元素或b遍历完成
     * @return
     */
    public static boolean isSubsequence() {
        int l=0,r=0;
        while (l<a.length&&r<b.length){
            if (a[l]==b[r]){
                l++;
            }
            r++;
        }
        return l==a.length;
    }
}
